package org.infodavid.common.services.security;

/**
 * The Interface ISecurityInterceptor.
 */
public interface ISecurityInterceptor {

  /** The read permission. */
  String READ_PERMISSION = "read";

  /** The read security permission. */
  String SECURITY_READ_PERMISSION = "read.security";

  /** The write security permission. */
  String SECURITY_WRITE_PERMISSION = "write.security";

  /** The write permission. */
  String WRITE_PERMISSION = "write";

  /** The delete permission. */
  String DELETE_PERMISSION = "delete";

  /** The add permission. */
  String ADD_PERMISSION = "add";

  /** The BASIC set of permissions. */
  String[] BASIC_PERMISSIONS = {
      READ_PERMISSION, WRITE_PERMISSION, DELETE_PERMISSION, ADD_PERMISSION,
      SECURITY_READ_PERMISSION, SECURITY_WRITE_PERMISSION
  };

  /**
   * Gets the available permissions.
   * @return the available permissions
   */
  String[] getAvailablePermissions();
}
